import { IPSDataEntity } from '../../ipsdata-entity';
import { IPSDEField } from '../ipsdefield';
import { IPSDEFVRSingleCondition } from './ipsdefvrsingle-condition';
import { IPSDEDataSet } from '../../ds/ipsdedata-set';

/**
 *
 * 继承父接口类型值[VALUERANGE]
 * @export
 * @interface IPSDEFVRValueRangeCondition
 */
export interface IPSDEFVRValueRangeCondition extends IPSDEFVRSingleCondition {
  /**
   * 附加主实体属性对象
   *
   * @type {IPSDEField}
   */
  getExtMajorPSDEField(): IPSDEField | null;

  /**
   * 附加主实体属性对象
   *
   * @type {IPSDEField}
   */
  get extMajorPSDEField(): IPSDEField | null;

  /**
   * 附加主实体属性对象（必须存在）
   *
   * @type {IPSDEField}
   */
  getExtMajorPSDEFieldMust(): IPSDEField;

  /**
   * 附加属性对象
   *
   * @type {IPSDEField}
   */
  getExtPSDEField(): IPSDEField | null;

  /**
   * 附加属性对象
   *
   * @type {IPSDEField}
   */
  get extPSDEField(): IPSDEField | null;

  /**
   * 附加属性对象（必须存在）
   *
   * @type {IPSDEField}
   */
  getExtPSDEFieldMust(): IPSDEField;

  /**
   * 主实体结果集对象
   *
   * @type {IPSDEDataSet}
   */
  getMajorPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 主实体结果集对象
   *
   * @type {IPSDEDataSet}
   */
  get majorPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 主实体结果集对象（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getMajorPSDEDataSetMust(): IPSDEDataSet;

  /**
   * 主实体对象
   *
   * @type {IPSDataEntity}
   */
  getMajorPSDataEntity(): IPSDataEntity | null;

  /**
   * 主实体对象
   *
   * @type {IPSDataEntity}
   */
  get majorPSDataEntity(): IPSDataEntity | null;

  /**
   * 主实体对象（必须存在）
   *
   * @type {IPSDataEntity}
   */
  getMajorPSDataEntityMust(): IPSDataEntity;

  /**
   * 始终检查
   * @type {boolean}
   */
  alwaysCheck: boolean;
}
